package interactiond

const (
	// EvtTypInteraction 交互事件类型
	EvtTypInteraction = "interaction"
	// EvtTypType 互动类型相关事件
	EvtTypType = "interactionType"
	// EvtTypGroup 互动组相关事件
	EvtTypGroup = "interactionGroup"
	// EvtTypReplay 回复相关事件
	EvtTypReplay = "interactionReplay"
)

const (
	// 事件行为定义

	// EvtActAdd 新增一个信息
	EvtActAdd = "add"
	// EvtActUpdate 更新一个信息
	EvtActUpdate = "update_desc"
	// EvtActUpdateValue 更新互动值
	EvtActUpdateValue = "update_value"
	// EvtActDelete 信息删除
	EvtActDelete = "delete"
	// EvtActDestroy 彻底删除
	EvtActDestroy = "destroy"
	// EvtActCommitCheck 提交审核
	EvtActCommitCheck = "commit_check"
	// EvtActCheckOk 审核通过
	EvtActCheckOk = "check_ok"
	// EvtActCheckNo 审核不通过
	EvtActCheckNo = "check_no"
	// EvtActPublish 信息发布
	EvtActPublish = "publish"
	// EvtActReplay 回复
	EvtActReplay = "reply"
	// EvtActInteraction 互动
	EvtActInteraction = "interaction"
	// EvtActLock 锁定
	EvtActLock = "lock"
	// EvtActRecover 恢复
	EvtActRecover = "recover"
	// EvtActUnlock 解锁
	EvtActUnlock = "unlock"
)

// EvtActTypeData 事件数据
// EvtActUpdate EvtActDelete EvtActDestroy EvtActPublish
type EvtActTypeData struct {
	Old TypeAggregate  `json:"old"`
	New *TypeAggregate `json:"new"`
}

// EvtActGroupData 组变化相关事件
type EvtActGroupData struct {
	Old GroupAggregate  `json:"old"`
	New *GroupAggregate `json:"new"`
}

// EvtActInteractionData 互动事件数据
type EvtActInteractionData struct {
	Data InteractionDesc `json:"data"`
}

// EvtActReplayOPData 评论操作事件数据
// EvtActDelete EvtActDestroy
type EvtActReplayOPData struct {
	Old ReplayAggregate  `json:"old"`
	New *ReplayAggregate `json:"new"`
}
